package com.wenx.v3system.modular.cloud.domain.query;

import com.wenx.base.domain.BaseQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 系统菜单查询条件
 * 基于Enhanced RBAC权限模型
 * 提供菜单管理、权限控制和树形结构操作
 * 
 * @author wenx
 * @since 1.0.0
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Schema(description = "系统菜单查询条件")
public class SysMenuQuery extends BaseQuery<Object> {

    @Schema(description = "菜单名称（模糊查询）", example = "用户管理")
    private String name;

    @Schema(description = "菜单编码（模糊查询）", example = "user_manage")
    private String code;

    @Schema(description = "菜单状态：1-启用，0-禁用", example = "1")
    private Integer status;

    @Schema(description = "菜单类型：1-目录，2-菜单，3-按钮", example = "2")
    private Integer type;

    @Schema(description = "父菜单ID", example = "1")
    private Long parentId;

    @Schema(description = "权限标识（模糊查询）", example = "user:read")
    private String permissions;

    @Schema(description = "路径（模糊查询）", example = "/user")
    private String path;

    @Schema(description = "关键词（用于菜单名称和编码的模糊搜索）", example = "管理")
    private String keyword;

    @Schema(description = "排序字段", example = "sort")
    private String orderBy;

    @Schema(description = "排序方式：asc-升序，desc-降序", example = "asc")
    private String orderType;
}
